(1) Field of the Invention
The present invention relates generally to software testing and, more specifically, to a software test tool operable for providing an independent test environment for testing computer program system functional elements which may have multiple Application Data Exchange (ADE) interfaces.
(2) Description of the Prior Art
Large scale hardware and software systems and application may typically include many different functional elements or modules. In many cases, the various functional elements or modules are developed concurrently. As used herein, a functional element is a software module which performs a unique software task and which may have multiple interfaces with other functional elements and/or with an application comprised of numerous functional elements and/or with an overall system comprised of a plurality of applications. In a preferred embodiment of the present invention, the functional element performs one or more tasks which utilize an inter-task interface or module-to-module communication protocol or mechanism. Each functional element may have multiple interfaces. The interface sets forth constraints on formats, timing, and/or other factors required by an interaction of functional elements that perform different tasks within a computer system.
Once the system is assembled, various problems may occur that cannot be easily traced to a particular functional element or module. In many cases, the problems relate to errors that occur at the functional element or module interfaces. As an example, one module or functional element might test and analyze different underwater acoustic propagation signal propagation loss models. If the overall system response is not as expected, it may be difficult to determine whether the particular functional element for analyzing signal propagation loss is operating correctly or whether the fault lies elsewhere. Moreover, it may typically be difficult to monitor software interface operation of any particular functional element with respect to other functional elements and the overall system.
Where systems involve complex meshings of inter-process communications, a known technique for implementing the communication of task messages has been to use a shared memory for passing data between tasks. However, with this technique the problem of determining the fault which produces a given error is even greater.
Consequently, there remains a long felt but unsolved need for improved testing of functional elements to ensure that accurate processing occurs within each functional element and that communications between the functional elements are consistent with the interface protocols. Those skilled in the art will appreciate the present invention that addresses the above and other problems.